package hcn.api.service.api.inpatient;

import ctd.controller.exception.ControllerException;
import ctd.util.annotation.RpcService;
import hcn.protocol.ods.inpatient.*;
import hcn.protocol.registration.QueryPatientListVO;
import hcn.protocol.registration.xml.req.QueryPatientListQO;
import hcn.util.PageInfo;

import java.util.List;

public interface InpatientService {

    @RpcService
    public OneDayBillResponseBean listBill(OneDayBillRequestBean inpatientRequest) throws ControllerException;//获取一日清单

    @RpcService
    public OneDayBillResponseBean listBillXml(OneDayBillRequestBean inpatientRequest) throws ControllerException;//获取一日清单

    @RpcService
    public List<InpatientRecordBean> listHospitalizationRecord(ListHospRecordRequestBean inpatientRequest) throws ControllerException;//查询住院记录

    @RpcService
    public List<InpatientRecordBean> listHospitalizationRecordXml(ListHospRecordRequestBean inpatientRequest) throws ControllerException;//查询住院记录

    @RpcService
    public ListHospFeeResponseBean listHospitalizationPaymentDate(ListHospFeeRequestBean paymentDateRequest) throws ControllerException;//获取年度费用

    @RpcService
    public ListHospFeeResponseBean listHospitalizationPaymentDateXml(ListHospFeeRequestBean paymentDateRequest) throws ControllerException;//获取年度费用

    @RpcService
    public DetailHospFeeResponseBean listHospitalizationPayment(InpatientRequest inpatientRequest) throws ControllerException;//获取费用明细

    @RpcService
    public HospDepositResponseBean hospitalizationDeposit(HospDepositRequestBean depositRequest) throws ControllerException;//住院预交金充值

    @RpcService
    public HospDepositResponseBean hospitalizationXmlDeposit(HospDepositRequestBean depositRequest) throws ControllerException;//住院预交金充值-xml

    @RpcService
    public List<ListPaymentHistoryResponseBean> listPaymentHistory(ListPaymentHistoryRequestBean paymentDateRequest) throws ControllerException;//获取缴费记录

    @RpcService
    public List<ListPaymentHistoryResponseBean> listPaymentXmlHistory(ListPaymentHistoryRequestBean paymentDateRequest) throws ControllerException;//获取缴费记录--xml

    @RpcService
    public List<SurgeryInfoList> getSurgeryInfo(SurgeryInfoVo surgeryInfoVo) throws ControllerException;

    //医生查询手术
    @RpcService
    public List<SurgeryInfoList> getSurgeryInfoXML(SurgeryInfoVo surgeryInfoVo) throws ControllerException;

    //居民查询手术
    @RpcService
    SurgeryInfoPage getSurgeryInfoPeopleXML(SurgeryInfoVo surgeryInfoVo);

    @RpcService
    public String createOrderNo(PubPayRequest pubPayRequest) throws ControllerException;

    @RpcService
    public String createXmlOrderNo(PubPayRequest pubPayRequest) throws ControllerException;

    //床位信息查询病区查询
    @RpcService
    List<BedInfoReq> getBedInfoByOrgXML(BedInfoVo bedInfoVo) throws ControllerException;

    //床位信息查询病区详情查询
    @RpcService
    List<BedInfoReq> getWardDetailsXML(BedInfoVo bedInfoVo) throws ControllerException;

    @RpcService
    PageInfo<QueryPatientListVO> queryPatientList(QueryPatientListQO qo) throws ControllerException;
}
